class Analise < ActiveRecord::Base

  attr_accessible :capacidade_real_producao, :informacoes_complementares, :condicoes_atendidas, :investimentos,
                  :depositos, :parecer, :data_rodape, :setor_economico_id, :enquadramento
  attr_readonly :pleito_id

  belongs_to :pleito
  belongs_to :setor_economico
  has_one    :vistoria,   :dependent => :destroy
  has_many   :exigencias, :dependent => :destroy

  with_options(:class_name => 'User') do |e|
    e.belongs_to :analista_1
    e.belongs_to :analista_2
  end

  validates_presence_of :pleito, :analista_1, :ano, :sequencial
  validates_uniqueness_of :sequencial, :scope => :ano

  before_validation_on_create :gerar_sequencial
  before_save :check_analista_2

  def gerar_sequencial
    ano = Date.today.year
    self[:ano] = ano
    self[:sequencial] = prox_seq(ano)
  end

  def numero
    "%04d/#{ano}" % sequencial
  end

  def check_analista_2
    analista_2 = nil unless pleito.reducao?
  end

  def analistas
    [analista_1, analista_2].compact
  end

  def data_rodape
    self[:data_rodape] || Date.today
  end

  private

  def prox_seq(ano)
    ultimo = Analise.ano_equals(ano).ascend_by_sequencial.last and ultimo.sequencial.next or 1
  end

end
